package com.course.design.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.course.design.entity.Ygxx;
import com.course.design.entity.vo.FriendsVO;
import com.course.design.entity.vo.UserLoginVO;
import com.course.design.entity.vo.YgxxQueryVo;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 描述:
 *
 * @author qinlianji
 * @create 2020-02-08
 */
public interface YgxxService {

    /**
     * 新增、保存员工信息
     * 新增时： 插入默认密码
     * 更新时： 忽略对密码的更新
     *
     * @param ygxx
     */
    boolean saveOrUpdate(Ygxx ygxx);

    /**
     * 根据id删除
     *
     * @param ygshId
     */
    void deleteById(String ygshId);

    /**
     * 真删除
     * @param ygshId
     */
    void deleteReal(String ygshId);

    /**
     * 批量删除员工
     * @param ygshId
     */
    void batchDeleteById(String ygshId);

    /**
     * 根据id查询
     *
     * @param ygshId
     * @return
     */
    Ygxx queryById(String ygshId);

    /**
     * 通过部门id查询联系人信息
     * @param deptdmCd
     * @return
     */
    List<Ygxx> queryByDeptdmCd(String deptdmCd);

    /**
     * 重置密码
     *
     * @param password 新密码
     * @param ygshId   员工id
     */
    boolean changePassword(String password, String ygshId);

    /**
     * 登录
     * @return
     */
    Ygxx login(UserLoginVO vo);

    /**
     * 查询联系人
     * @param userId
     * @return
     */
    List<FriendsVO> queryFriends(String userId);

    /**
     * 查询本部门的联系人
     * @param userId
     * @return
     */
    List<FriendsVO> queryDeptFriends(String userId);


    /**
     * 分页查询员工信息
     * @param start
     * @param limit
     * @return
     */
    IPage<Ygxx> queryPage(int start, int limit, String username);

    /**
     * 员工更改自己的信息
     * @param ygxx
     */
    Ygxx ygUpdateSelf( Ygxx ygxx);

    /**
     * 分页查询待审批员工信息
     * @param start
     * @param limit
     * @return
     */
    IPage<Ygxx> querySqPage(int start, int limit, String username);

    /**
     * 审批员工通过
     * @param ygshId
     */
    void updateSjyxbj(String ygshId);

}
